/**
  ******************************************************************************
  * @file           : base_64.h
  * @author         : chyang
  * @brief          : None
  * @attention      : None
  * @date           : 2024/3/13
  ******************************************************************************
*/



#ifndef CPLUS_CLIENT_BASE_64_H
#define CPLUS_CLIENT_BASE_64_H


//base64类的头文件
#pragma once
//___base_64.h

/*base_64.h文件*/
#ifndef BASE_64_H
#define BASE_64_H

#include <iostream>

/**
 * Base64 编码/解码
 * @author liruixing
 */
class Base64 {
private:
    std::string _base64_table;
    static const char base64_pad = '=';
public:
    Base64() {
        _base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /*这是Base64编码使用的标准字典*/
    }

    /**
     * 这里必须是unsigned类型，否则编码中文的时候出错
     */
    std::string Encode(const unsigned char *str, int bytes);

    std::string Decode(const char *str, int bytes);

    void Debug(bool open = true);
};

#endif


#endif //CPLUS_CLIENT_BASE_64_H
